#include "../../Common/Detail.hpp"
#include "../../Server/RpcServer.hpp"

void Add(const Json::Value &req, Json::Value &rsp)
{
    int num1 = req["num1"].asInt();
    int num2 = req["num2"].asInt();
    rsp = num1 + num2;
}

int main()
{
    // 1. 创建rpc服务端
    RpcModule::Address access_addr(std::make_pair("127.0.0.1", 9090));
    // 默认不启动服务注册功能，那么也不需要给注册中心的地址
    RpcModule::ServerModule::RpcServer::ptr server = std::make_shared<RpcModule::ServerModule::RpcServer>(access_addr);
    // 2. 上线Add服务
    RpcModule::ServerModule::ServiceDescribeFactory::ptr factory = std::make_shared<RpcModule::ServerModule::ServiceDescribeFactory>();
    factory->SetMethodName("Add");
    factory->SetParamsDesc("num1", RpcModule::ServerModule::RpcType::INTEGRAL);
    factory->SetParamsDesc("num2", RpcModule::ServerModule::RpcType::INTEGRAL);
    factory->SetReturnType(RpcModule::ServerModule::RpcType::INTEGRAL);
    factory->SetCallBack(Add);
    RpcModule::ServerModule::ServiceDescribe::ptr describe = factory->Build();
    server->RegisterMethod(describe);
    // 3. 启动服务端
    server->Start();
    return 0;
}